package com.xiaoshuidi.cloud.module.contract.controller.admin.contract.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 租客合同 Excel VO
 *
 * @author 合房租赁
 */
@Data
public class ContractExcelVO {

    @ExcelProperty("合同ID")
    private Long id;

    @ExcelProperty("合同编号")
    private String contractNo;

    @ExcelProperty("线下合同编号")
    private String offlineNo;

    @ExcelProperty("电子合同编号")
    private String electronicNo;

    @ExcelProperty("合同类型 paper纸质合同 | electronic 电子合同")
    private String contractSort;

    @ExcelProperty("合同分类 normal 普通合同 | segmented 分段合同 |rentfree 免租期合同")
    private String contractType;

    @ExcelProperty("是否按自然月 0 默认非自然月 1 自然月")
    private Integer naturalMonthOrder;

    @ExcelProperty("关联公寓")
    private Long apartmentId;

    @ExcelProperty("公寓名称")
    private String apartmentName;

    @ExcelProperty("关联房间")
    private Long roomId;

    @ExcelProperty("房间名称")
    private String roomName;

    @ExcelProperty("开始日期")
    private LocalDate startTime;

    @ExcelProperty("结束日期")
    private LocalDate endTime;

    @ExcelProperty("实际结束日期")
    private LocalDate actualEndTime;

    @ExcelProperty("月租金")
    private BigDecimal monthRent;

    @ExcelProperty("总租金")
    private BigDecimal totalRent;

    @ExcelProperty("物业费")
    private BigDecimal propertyAmount;

    @ExcelProperty("押金")
    private BigDecimal deposit;

    @ExcelProperty("原押金")
    private BigDecimal oldDeposit;

    @ExcelProperty(" 付几  |  付款周期")
    private Integer payMethodF;

    @ExcelProperty("压几")
    private Integer payMethodY;

    @ExcelProperty("收租类型 advanced  提前收租天 | fixed 固定当月日期 日 | prefixed 固定上月日期 日,")
    private String rentPayWay;

    @ExcelProperty("收租类型日")
    private Integer advancedDays;

    @ExcelProperty("优惠类型 cycle 周期性优惠 | once 一次性优惠")
    private String discountSort;

    @ExcelProperty("优惠方式 rate 优惠比例 % | amount 优惠金额 元/月 | once 优惠金额 元")
    private String discountType;

    @ExcelProperty("一次性优惠金额计入首期或末期账单 first 计入首期账单 | last 计入末期账单")
    private String discountOrder;

    @ExcelProperty("优惠值")
    private BigDecimal discountValue;

    @ExcelProperty("叠加优惠类型：周期性 cycle | 一次性 once")
    private String extraDiscountSort;

    @ExcelProperty("周期性优惠优惠方式：按账期（order）,按月租金(rent)")
    private String extraDiscountType;

    @ExcelProperty("一次性优惠计入账单：计入首次(first), 计入末次(last)")
    private String extraDiscountOrder;

    @ExcelProperty("周期性优惠值")
    private BigDecimal extraDiscountValue;

    @ExcelProperty("合同状态 pending 待审核 | reject 已驳回 | no_signed 待签约 | no_effective  待生效 | active 已生效 | signed_aging   已失效|Completed 完成")
    private String status;

    @ExcelProperty("签约状态 0 未知 |1 待签约| 2 已签约 | 3 已取消")
    private Integer signed;

    @ExcelProperty("在线签约状态 0 未签约 1已签约")
    private Integer signStatus;

    @ExcelProperty("签约时间")
    private LocalDate signedTime;

    @ExcelProperty("签约图片")
    private String signedPicture;

    @ExcelProperty("证件附件地址")
    private String certificateUrl;

    @ExcelProperty("合同附件地址")
    private String contractUrl;

    @ExcelProperty("来源合同ID  续租 | 换房")
    private Long fromId;

    @ExcelProperty("客户类型 personal 个人客户 | company 企业客户")
    private String customerType;

    @ExcelProperty("租客名")
    private String customerName;

    @ExcelProperty("租客手机号")
    private String customerPhone;

    @ExcelProperty("紧急联系人姓名")
    private String emergencyContactName;

    @ExcelProperty("紧急联系人手机号")
    private String emergencyContactPhone;

    @ExcelProperty("紧急联系人关系")
    private String emergencyContactRelationship;

    @ExcelProperty("证件类型")
    private String customerIdType;

    @ExcelProperty("证件号码")
    private String customerIdNumber;

    @ExcelProperty("国籍")
    private String customerNationality;

    @ExcelProperty("乙方联系地址")
    private String renterAddress;

    @ExcelProperty("租客邮编")
    private String renterPostalCode;

    @ExcelProperty("租客邮箱")
    private String renterEmail;

    @ExcelProperty("银行卡号")
    private String customerCreditCard;

    @ExcelProperty("所属银行")
    private String customerBank;

    @ExcelProperty("所属支行")
    private String customerBankArea;

    @ExcelProperty("租客学历")
    private String customerEducation;

    @ExcelProperty("租客岗位")
    private String customerPost;

    @ExcelProperty("企业客户")
    private Integer customerCompanyId;

    @ExcelProperty("企业客户费用承担方式")
    private Integer orderShareMethod;

    @ExcelProperty("受理编号")
    private String customerAcceptanceNo;

    @ExcelProperty("乙方居住类型 1 单身合租 | 2 非单身合租 ")
    private String customerHabitancyType;

    @ExcelProperty("来源于哪份企业合同")
    private Long companyContractId;

    @ExcelProperty("关联业主委托合同 默认0 不关联 1 关联")
    private Integer entrustContractId;

    @ExcelProperty("是否与业主直接签署")
    private Integer isOwner;

    @ExcelProperty("合同签约发起人-甲方")
    private Integer signerId;

    @ExcelProperty("签约人姓名-甲方")
    private String signerName;

    @ExcelProperty("客户来源 1 来电 |2 58同城 | 3 赶集网 | 4 安居客 | 5 官网预约 | 6 微信 | 7 自来客 | 8 转介绍 | 9 中介 | 10 其他 |11 房天下 | 12 豆瓣 | 13 百姓网 | 14 闲鱼 | 15 微博 | 16 官网在线 | 17 运营管理 | 18 手机APP | 19 贝壳 ")
    private String source;

    @ExcelProperty("网签备案状态  0 未网签备案 | 1 已网签备案 | 2 已退租备案 | 3 撤销合同备案")
    private Integer recordStatus;

    @ExcelProperty("网签续租备案确认状态 0 续租备案未确认 | 1 续租备案已确认")
    private Integer renewRecordStatus;

    @ExcelProperty("优惠券推荐老客户手机号")
    private String referrerPhone;

    @ExcelProperty("0未发券,1已发券")
    private Integer voucherIssuanceStatus;

    @ExcelProperty("是否免租")
    private Integer hasRentfree;

    @ExcelProperty("退租原因")
    private String evictionReason;

    @ExcelProperty("备注")
    private String remark;

    @ExcelProperty("创建时间")
    private LocalDate createTime;


//    @ExcelProperty("派单ID")
//    private Integer customerResId;

}
